// 在组件联动，可以调用这里的自定义方法，操作组件用来实现自定义的业务；
export default {
    // 销售订单明细，根据客户价表批量更新：非税价格、含税单价，税率，并且自动计算非税金额、含税金额；
    /**
     * @param {Class} comObject 调用组件的 comObject
     * @param {JSON} eventInfo  当前触发事件的 eventInfo
     */
    async saleOrderBatchUpdatePrice(comObject, eventInfo, params=[]) {
        if (!comObject.data || !comObject.data.length) {
            return new Promise()
        }
        let code = "'" + comObject.data.map(item => item.values.material_bcode).join("','") + "'"

        params.push({ name: 'condition', value: `customer_code='${comObject.sourceComp.editParam.customer_code}'` });
        params.push({ name: 'hierValueCondition', value: `material_bcode in (${code})` });
        return comObject.Vue.prototype.$api.business.eventExecute({
            category: eventInfo.action[0], 
            name: eventInfo.action[1],
            data: {
              params,
              back: eventInfo.backParamList || []
            }
          }).then(res => {
            let data = res.list
            let hier = []
            data.forEach(item => {
                if (item.hier.content) {
                    hier = hier.concat(item.hier.content.filter(hItem => hItem.parentId === 'root'))
                }
            })
            console.log("file: customMethod.js:24  saleOrderBatchUpdatePrice  res:", res, hier, comObject.data)

            hier.forEach(item => {
                let index = comObject.data.findIndex(tItem => tItem.values.material_bcode === item.values.material_bcode)
                if (index >= 0) {
                    let newItem = comObject.data[index];

                    newItem.values.price = item.values.price
                    newItem.values.priceNonTax = item.values.priceNonTax
                    newItem.values.taxRate = item.values.taxRate
                    if (newItem.values.quantity) {
                        newItem.values.money = (item.values.price || 0) * newItem.values.quantity
                        newItem.values.moneyNoTax = (item.values.priceNonTax || 0) * newItem.values.quantity
                    }
                }
            })
          })
    },
    // 需要加到列表中，才能在配置的下拉框显示；
    methodList: [
        {value: 'saleOrderBatchUpdatePrice'},
    ]
}